package com.chuidiang.ejemplos.hibernate_annotations;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

//import com.ipartek.formacion.hellowebapp.util.Util;

@Entity
@Table(name = "libro")
public class LibroHibernate {
	// constantes
	public final static String PATH_IMAGE_TICK = "../image/tic-verde.jpg";
	public final static String PATH_IMAGE_DOS_ROMBOS = "../image/dosrombos.jpeg";

	// atributos
	/**
	 * Titulo del <code>Libro</code>
	 * 
	 * @since 0.1
	 */
	@Id
	@GeneratedValue
	private long id;

	@Basic
	@Column(name = "titulo")
	private String titulo;

	/**
	 * Autor o escritor del <code>Libro</code>
	 */
	@Basic
	@Column(name = "autor")
	private String autor;

	/**
	 * Numero de Paginas
	 */
	@Basic
	@Column(name = "npagina")
	private int nPagina;

	/**
	 * Precio del <code>Libro</code> en Euros, incialmanente sera 0
	 */
	@Basic
	@Column(name = "precio")
	private float precio;

	/**
	 * True es un <code>Libro</code> disponible para todos los publicos; False
	 * solo para adultos > 18
	 */
	@Basic
	@Column(name = "todoslospublicos")
	private boolean todosLosPublicos;

	// constrcutores

	/**
	 * Constructor por defecto, todos los campos vacios , valores numericos a 0
	 * y todosLosPublicos = false
	 */
	public LibroHibernate() {
		super();
		this.titulo = "";
		this.autor = "";
		this.nPagina = 0;
		this.precio = (float) 0.0;
		this.todosLosPublicos = false;
	}

	/**
	 * @param titulo
	 * @param autor
	 * @param nPagina
	 * @param precio
	 * @param todosLosPublicos
	 */
	public LibroHibernate(String titulo, String autor, int nPagina,
			float precio, boolean todosLosPublicos) {
		super();
		setTitulo(titulo);
		setAutor(autor);
		this.nPagina = nPagina;
		this.precio = precio;
		this.todosLosPublicos = todosLosPublicos;
	}

	// getters y setters

	/**
	 * @return the id
	 */
	public long getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(long id) {
		this.id = id;
	}

	/**
	 * @return the titulo
	 */
	public String getTitulo() {
		return titulo;
	}

	/**
	 * @param titulo
	 *            the titulo to set
	 */

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	/**
	 * @return the autor
	 */
	public String getAutor() {
		return autor;
	}

	/**
	 * @param autor
	 *            the autor to set
	 */
	public void setAutor(String autor) {
		// this.autor = Util.capitaliza(autor);
		this.autor = autor;
	}

	/**
	 * @return the nPagina
	 */
	public int getnPagina() {
		return nPagina;
	}

	/**
	 * @param nPagina
	 *            the nPagina to set
	 */
	public void setnPagina(int nPagina) {
		this.nPagina = nPagina;
	}

	/**
	 * @return the precio
	 */
	public float getPrecio() {
		return precio;
	}

	/**
	 * @param precio
	 *            the precio to set
	 */
	public void setPrecio(float precio) {
		this.precio = precio;
	}

	/**
	 * @return the todosLosPublicos
	 */
	public boolean isTodosLosPublicos() {
		return todosLosPublicos;
	}

	/**
	 * @param todosLosPublicos
	 *            the todosLosPublicos to set
	 */
	public void setTodosLosPublicos(boolean todosLosPublicos) {
		this.todosLosPublicos = todosLosPublicos;
	}

	// funciones
	/**
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Libro [titulo=" + titulo + ", autor=" + autor + ", nPagina="
				+ nPagina + ", precio=" + precio + ", todosLosPublicos="
				+ todosLosPublicos + "]";
	}

	/**
	 * Gestiona el recurso grafico a mostrar dependiendo de si es para todos los
	 * publicos o no. Si es todos los publicos imagen tick verde, en caso
	 * contrario imagen dos rombos
	 * 
	 * @return path de la imagen asosciada
	 */
	public String todosLosPublicosImg() {
		String resul = PATH_IMAGE_DOS_ROMBOS;
		if (this.todosLosPublicos) {
			resul = PATH_IMAGE_TICK;
		}
		return resul;
	}

}
